/**
 * 
 */
package com.firebird.oms.service.sm;

import java.util.List;
import java.util.Map;

import com.firebird.base.domain.KeyLabel;
import com.firebird.base.domain.Page;
import com.firebird.oms.domain.sm.TismArea;
import com.firebird.oms.domain.sm.TismCompany;

/**
 * @author qiuxj
 * @date 2009-11-22
 *
 */
public interface CompanyService {
	
	/**
	 * 创建责任区域
	 * @param smArea
	 */
	public void createArea(TismArea smArea);
	
	/**
	 * 更新责任区域
	 * @param smArea
	 */
	public void updateArea(TismArea smArea);
	
	/**
	 * 获取责任区域
	 * @param areaId
	 * @return
	 */
	public TismArea getArea(int areaId);
	
	/**
	 * 获取责任区域列表
	 * @param filter
	 * @return
	 */
	public List<TismArea> findArea(Map<String, String> filter);
	
	/**
	 * 获取分页责任区域列表
	 * @param filterMap
	 * @param likeMap
	 * @param sortMap
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	public Page pageArea(Map<String, String> filterMap, Map<String, String> likeMap, Map<String, String> sortMap,
			int pageNo, int pageSize);
	
	/**
	 * 创建分公司信息
	 * @param smCompany
	 */
	public void createCompany(TismCompany smCompany);
	
	/**
	 * 修改分公司信息
	 * @param smCompany
	 */
	public void updateCompany(TismCompany smCompany);
	
	/**
	 * 根据分公司ID获取分公司信息
	 * @param companyId
	 * @return
	 */
	public TismCompany getCompany(int companyId);
	
	/**
	 * 根据filter查询分公司信息
	 * @param filter
	 * @return
	 */
	public List<TismCompany> findCompany(Map<String, Object> filter);
	
	/**
	 * 获取分公司的下级分公司
	 * @param companyId
	 * @return
	 */
	public List<TismCompany> getChildCompany(int companyId);
	
	/**
	 * 获取所有有效地分公司列表
	 * @return
	 */
	public List<KeyLabel> getCompanyKls();

}
